const USET_MOBILE = 'USET-MOBILE';
const USET_OFFER = 'USET-OFFER';

const $token = require('./token');

const $user = require('../request/api/v1/user');

const $index = require('../request/api/v1/index');
/**
 * 获取用户手机号
 */

export function get() {
	return uni.getStorageSync(USET_MOBILE) || '';
}
/**
 * 设置用户手机号
 */

export function set(mobile) {
	return uni.setStorageSync(USET_MOBILE, mobile);
}
/**
 * 删除用户手机号
 */

export function del() {
	uni.removeStorageSync(USET_MOBILE);
}
/**
 * 获取定位信息
 */

export function getLocation() {
	return new Promise((resolve, reject) => {
		uni.getLocation({
			// gcj02(用于打开微信地图查看位置) wgs84(返回全球定位系统坐标)
			type: 'gcj02',
			isHighAccuracy: true,
			highAccuracyExpireTime: 3000,
			success(res) {
				uni.setStorageSync('latlng', {
					lat: res.latitude,
					lng: res.longitude
				});

				if ($token.get() && !$token.getIsLocation()) {
					$user.updateUserLocation({
						lng: res.longitude,
						lat: res.latitude
					});
				}

				resolve();
			},

			fail(err) {
				// resolve();
				console.log('失败数据err', err)
				if (err.errMsg == 'getLocation:fail auth deny' || err.errMsg ==
					'getLocation:fail 获取定位权限失败' || err.errCode == 1) {
					uni.showModal({
						content: '检测到您没打开此应用的定位权限，是否去设置打开？',
						confirmText: '确认',
						cancelText: '取消',
						success: function(res) {
							if (res.confirm) {
								// #ifdef APP-PLUS
								if (plus.os.name == 'iOS') {
									plus.runtime.openURL("app-settings://");
								} else {
									var main = plus.android.runtimeMainActivity();
									var Intent = plus.android.importClass(
										"android.content.Intent");
									//进入应用列表的权限设置 android.settings.APPLICATION_SETTINGS   参考链接：https://ask.dcloud.net.cn/question/128369
									//进入手机自身的定位开关 android.settings.LOCATION_SOURCE_SETTINGS  
									var mIntent = new Intent(
										'android.settings.APPLICATION_SETTINGS');
									main.startActivity(mIntent);
								}
								// #endif

								// #ifdef MP-WEIXIN			 
								uni.openSetting({
									success: (res) => {
										if (res.authSetting[
												'scope.userLocation']) {
											uni.getLocation({
												type: 'gcj02',
												isHighAccuracy: true,
												highAccuracyExpireTime: 3000,
												success(res) {
													uni.setStorageSync(
														'latlng', {
															lat: res
																.latitude,
															lng: res
																.longitude
														});

													if ($token.get() &&
														!$token
														.getIsLocation()
													) {
														$user
															.updateUserLocation({
																lng: res
																	.longitude,
																lat: res
																	.latitude
															});
													}
													resolve();
												}
											});
										}
									}
								});
								// #endif
							}
						}
					});
				} else if (err.errMsg == 'getLocation:fail Position retrieval timed out.') {
					// 高德地图获取定位超时
					uni.showModal({
						title: '提示',
						content: '网络繁忙，过一会再点击重新获取地址~',
						confirmColor: '#FF2840', //确定字体颜色
						showCancel: false, //没有取消按钮的弹框
						buttonText: '确定',
						success: function(res) {
							if (res.confirm) {
								console.log('用户点击确定');
							} else if (res.cancel) {
								console.log('用户点击取消');
							}
						}
					})
				}
			}
		});
	});
}
/**
 * 获取用户常用报价
 */

export function getHistoryOffer() {
	return uni.getStorageSync(USET_OFFER);
}
/**
 * 设置用户常用报价
 */

export function setHistoryOffer(item) {
	let list = [];
	let old_list = getHistoryOffer() || [];
	let is_exist = false;
	let exist_index = 0;
	old_list.forEach((i, index) => {
		if (i.offer_cat_id == item.offer_cat_id) {
			is_exist = true;
			exist_index = index;
		}
	});

	if (is_exist) {
		old_list.splice(exist_index, 1);
		old_list.unshift(item);
	} else if (old_list.length < 10) {
		old_list.unshift(item);
	} else {
		old_list.pop();
		old_list.unshift(item);
	}

	list = old_list;
	return uni.setStorageSync(USET_OFFER, list);
}

// 设置页面访问次数
export function getAddPageLog(data) {
	$index.addPageLog({
		page_url: data.page_url,
		page_name: data.page_name,
		page_code: data.page_code
	})
}